namespace dnAnalytics.LinearAlgebra.Solvers
{
    /// <summary>
    /// An <b>enum</b> used to indicate the final status of an iterative solution as
    /// run by a <see cref="IIterativeMatrixSolver"/>.
    /// </summary>
    public enum SolutionStatus
    {
        /// <summary>
        /// There is no status. Will be used if the solver did not actually run.
        /// </summary>
        None,
        /// <summary>
        /// The <see cref="IIterativeMatrixSolver"/> has converged to the convergence levels 
        /// that were given to the <see cref="ConvergenceMonitor"/> when it was created.
        /// </summary>
        Converged,
        /// <summary>
        /// The iterative solution has diverged. 
        /// </summary>
        Diverged,
        /// <summary>
        /// The <see cref="IIterativeMatrixSolver"/> reached the maximum number of
        /// iterations it was allowed to perform before the solution either
        /// converged or diverged.
        /// </summary>
        IterationBoundsReached
    }
}